﻿/*******************************************************************************
 * author : Kimm King 
 * datetime : 2008年8月19日16:40:54 
 * description :
 * 数据相关（store-字典表初始化+缓存 以及一些常用的转换等数据操作） 
 * 1、 initialization 
 * 2、 cache store 
 * 3、 converter 
 * 4、 utility
 */

extjsbase.data = {

	Data : {},
	Reader : new Ext.data.JsonReader({
		root : 'data'
	}, [{
		name : 'value'
	}, {
		name : 'text'
	}]),
	
	createSimpleStore : function()
	{
		return new Ext.data.SimpleStore( {
			data :[[]],
			fields : [ 'text', 'value' ]
		});
	},
	
	createMemberStore : function()
	{
		return new Ext.data.SimpleStore( {
			data :[['张三','张三'],['张四','张四'],['李武','李武'],['王六','王六'],['金七','金七']],
			fields : [ 'text', 'value' ]
		});
	},
	
	createDepartmentStore : function()
	{
		return new Ext.data.SimpleStore( {
			data :[['开发一部','开发一部'],['开发二部','开发二部'],
			       ['测试中心','测试中心'],['其他','其他']],
			fields : [ 'text', 'value' ]
		});
	},
	
	createIsexStore : function()
	{
		return new Ext.data.SimpleStore( {
			data :[['男','0'],['女','1']],
			fields : [ 'text', 'value' ]
		});
	},

	getComboStore : function(sproperty) {

		var store = this.Data[sproperty];
		if (!store) {
			store = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
					url : 'ExtControllerServlet?requestType=dict&action=dictionaryAction.getDictionary&code='
							+ sproperty
				}),
				reader : this.Reader
			});
			store.load({
				params : {}
			});
			this.Data[sproperty] = store;
		}
		return store;
	},

	getComboStore2 : function(action, name, value) {
		// debugger
		var store = this.Data[sproperty];
		if (!store) {
			store = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
					url : 'ExtControllerServlet?requestType=dict&action='
							+ action + '&' + name + '=' + sproperty
				}),
				reader : this.Reader
			});
			store.load({
				params : {}
			});
			this.Data[sproperty] = store;
		}
		return store;
	},
	convert : function(sproperty, value) {
		var store = this.getComboStore(sproperty);
		return this.transferKV(store, value);
	},

	transfer : function(store, svaluefield, value, stextfield) {
		var index = store.find(svaluefield, value);
		if (index >= 0)
			return (store.getAt(index).get(stextfield));
		else
			return value;
	},

	transferKV : function(dstore, value) {
		return this.transfer(dstore, 'value', value, 'text');
	},
	init : function(arr) {
		for (var i = 0; i < arr.length; i++) {
			this.getComboStore(arr[i]);
		}
		return true;
	},

	initA : function(arr) {
		// debugger
		for (var i = 0; i < arr.length; i++) {
			this.getComboStore2(arr[i][0], arr[i][1]);
		}
		return true;
	},
	initUserCode : function() {

		if (!extjsbase.userFunctionCode) {

			Ext.Ajax.request({
				url : 'ExtControllerServlet?requestType=form&action=userAction.getFunctionCodeByUserCode&code='
						+ extjsbase.getUsercode(),
				success : function(action, request) {
					var obj = Ext.decode(action.responseText);
					extjsbase.userFunctionCode = obj.data;

					var body = Ext.getBody();
					if (body.isMasked()) {
						body.unmask();
						//alert(extjsbase.userFunctionCode);
						System.init();
					}
				},
				failure : function(action, request) {

					var obj = Ext.decode(action.responseText);
					Ext.MessageBox.alert("初始化 权限代码失败！", obj.message);
				}
			});
		}
	} //initUserCode
}

extjsbase.data.Data["isex"] = extjsbase.data.createIsexStore();

//extjsbase.data.init([]);

//extjsbase.data.initUserCode();
